package com.heima.article.feign;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.media.dto.NewsDto;
import com.heima.model.media.dto.WmNewsPageReqDto;
import com.heima.model.media.pojos.WmNews;
import com.heima.model.media.pojos.WmUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

@FeignClient("leadnews-wemedia")
public interface WemediaFeign {

    /**
     * 根据id查询文章
     *
     * @param id
     * @return
     */
    @GetMapping("/api/v1/news/findById/{id}")
    public ResponseResult get(@PathVariable("id") Integer id);

    @PostMapping("/api/v1/news/update")
    ResponseResult updateWmNews(@RequestBody WmNews wmNews);

    /**
     * 分页带条件查询自媒体文章列表
     *
     * @param wmNewsPageReqDto
     * @return
     */
    @PostMapping("/api/v1/news/list")
    ResponseResult<List<WmNews>> findAll(@RequestBody WmNewsPageReqDto wmNewsPageReqDto);


    /**
     * 查询状态为8的所有待发布文章的id，进行定时发布
     *
     * @param
     * @return
     */
    @GetMapping("/api/v1/news/findAllByStatus")
    ResponseResult<List<Integer>> findAllByStatus();


    /**
     * 文章上架和下架
     * @param dto
     * @return
     */
    @PostMapping("/api/v1/news/downOrUp")
    ResponseResult downOrUp(@RequestBody NewsDto dto);



    /**
     * 查询用户
     * @param id
     * @return
     */
    @GetMapping("/api/v1/user/findOne/{id}")
    WmUser findWmUserById(@PathVariable("id") Long id);



}